﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace DADOS.usuario
{
    public class metAnamnese
    {
        DB_PROAD banco = new DB_PROAD();

        private void FecharConexao(object banco)
        {
            ((DB_PROAD)banco).Connection.Close();
        }

        private void InicializarConexao(object banco)
        {
            ((DB_PROAD)banco).Connection.Open();
        }

        /// <summary>
        /// Retonar TB_ANAMNESE
        /// </summary>
        /// <param name="intCodCat">Código usuario</param>
        /// <returns>obj TB_ANAMNESE</returns>
        public TB_ANAMNESE SelecionarAnamnese(int intCodUsuario)
        {
            try
            {
                InicializarConexao(banco);
                var objCat = banco.TB_ANAMNESE.Where(q => q.CO_USUARIO == intCodUsuario).FirstOrDefault();
                return objCat;
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        /// <summary>
        /// Incluir ANAMNESE
        /// </summary>
        /// <param name="objAnamnese">TB_ANAMNESE objAnamnese</param>
        public TB_ANAMNESE Incluir(TB_ANAMNESE objAnamnese)
        {
            try
            {
                InicializarConexao(banco);
                banco.AddToTB_ANAMNESE(objAnamnese);
                banco.SaveChanges();
                return objAnamnese;
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        /// <summary>
        /// Alterar ANAMNESE
        /// </summary>
        /// <param name="objAnamnese">TB_ANAMNESE FormAnamnese</param>
        public void Alterar(TB_ANAMNESE FormAnamnese)
        {
            try
            {
                InicializarConexao(banco);

                var objAnamnese = banco.TB_ANAMNESE.Where(q => q.CO_ANAMNESE == FormAnamnese.CO_ANAMNESE).FirstOrDefault();

                objAnamnese.DT_ATUALIZACAO = FormAnamnese.DT_ATUALIZACAO;
                objAnamnese.NR_QUESTAO_1 = FormAnamnese.NR_QUESTAO_1;
                objAnamnese.NR_QUESTAO_1_HAS = FormAnamnese.NR_QUESTAO_1_HAS;
                objAnamnese.NR_QUESTAO_1_DM = FormAnamnese.NR_QUESTAO_1_DM;
                objAnamnese.NR_QUESTAO_1_AVE = FormAnamnese.NR_QUESTAO_1_AVE;
                objAnamnese.NR_QUESTAO_1_ALZHEIMER = FormAnamnese.NR_QUESTAO_1_ALZHEIMER;
                objAnamnese.NR_QUESTAO_1_NEOPLASIAS = FormAnamnese.NR_QUESTAO_1_NEOPLASIAS;
                objAnamnese.NR_QUESTAO_1_ARTROSES = FormAnamnese.NR_QUESTAO_1_ARTROSES;
                objAnamnese.NR_QUESTAO_1_OUTROS = FormAnamnese.NR_QUESTAO_1_OUTROS;
                objAnamnese.NR_QUESTAO_1_1_OUTROS = FormAnamnese.NR_QUESTAO_1_1_OUTROS;
                objAnamnese.NR_QUESTAO_2 = FormAnamnese.NR_QUESTAO_2;
                objAnamnese.NR_QUESTAO_3 = FormAnamnese.NR_QUESTAO_3;
                objAnamnese.NR_QUESTAO_4 = FormAnamnese.NR_QUESTAO_4;

                objAnamnese.NR_HAB_1 = FormAnamnese.NR_HAB_1;
                objAnamnese.NR_HAB_2 = FormAnamnese.NR_HAB_2;
                objAnamnese.NR_HAB_3 = FormAnamnese.NR_HAB_3;
                objAnamnese.NR_HAB_4_1 = FormAnamnese.NR_HAB_4_1;
                objAnamnese.NR_HAB_4_2 = FormAnamnese.NR_HAB_4_2;
                objAnamnese.NR_HAB_4_3 = FormAnamnese.NR_HAB_4_3;
                objAnamnese.NR_HAB_4_4 = FormAnamnese.NR_HAB_4_4;
                objAnamnese.NR_HAB_4_5 = FormAnamnese.NR_HAB_4_5;
                objAnamnese.NR_HAB_4_6 = FormAnamnese.NR_HAB_4_6;
                objAnamnese.NR_HAB_5 = FormAnamnese.NR_HAB_5;
                objAnamnese.NR_HAB_6 = FormAnamnese.NR_HAB_6;
                objAnamnese.NR_HAB_7 = FormAnamnese.NR_HAB_7;
                objAnamnese.NR_HAB_8 = FormAnamnese.NR_HAB_8;
                objAnamnese.NR_HAB_9 = FormAnamnese.NR_HAB_9;
                objAnamnese.NR_HAB_10 = FormAnamnese.NR_HAB_10;
                objAnamnese.NR_HAB_11_1 = FormAnamnese.NR_HAB_11_1;
                objAnamnese.NR_HAB_11_2 = FormAnamnese.NR_HAB_11_2;
                objAnamnese.NR_HAB_11_3 = FormAnamnese.NR_HAB_11_3;
                objAnamnese.NR_HAB_11_4 = FormAnamnese.NR_HAB_11_4;
                objAnamnese.NR_HAB_11_5 = FormAnamnese.NR_HAB_11_5;
                objAnamnese.NR_HAB_11_6 = FormAnamnese.NR_HAB_11_6;
                objAnamnese.NR_HAB_12 = FormAnamnese.NR_HAB_12;
                objAnamnese.NR_ALI_1 = FormAnamnese.NR_ALI_1;
                objAnamnese.NR_ALI_2 = FormAnamnese.NR_ALI_2;
                objAnamnese.NR_ALI_3 = FormAnamnese.NR_ALI_3;
                objAnamnese.DS_ALI_4 = FormAnamnese.DS_ALI_4;
                objAnamnese.NR_ALI_5 = FormAnamnese.NR_ALI_5;
                objAnamnese.NR_ALI_5_1 = FormAnamnese.NR_ALI_5_1;
                objAnamnese.NR_ALI_5_2 = FormAnamnese.NR_ALI_5_2;
                objAnamnese.NR_ALI_5_3 = FormAnamnese.NR_ALI_5_3;
                objAnamnese.NR_ALI_5_OBS = FormAnamnese.NR_ALI_5_OBS;
                objAnamnese.NR_ALI_6 = FormAnamnese.NR_ALI_6;
                objAnamnese.NR_ALI_7 = FormAnamnese.NR_ALI_7;
                objAnamnese.NR_ALI_7_1 = FormAnamnese.NR_ALI_7_1;
                objAnamnese.NR_ALI_8 = FormAnamnese.NR_ALI_8;
                objAnamnese.NR_ALI_9 = FormAnamnese.NR_ALI_9;
                objAnamnese.NR_ALI_9_1 = FormAnamnese.NR_ALI_9_1;
                objAnamnese.NR_ALI_10_PLEGIA_MMSS = FormAnamnese.NR_ALI_10_PLEGIA_MMSS;
                objAnamnese.NR_ALI_10_PARESIA_MMSS = FormAnamnese.NR_ALI_10_PARESIA_MMSS;
                objAnamnese.NR_ALI_10_PARESTIA_MMSS = FormAnamnese.NR_ALI_10_PARESTIA_MMSS;
                objAnamnese.NR_ALI_10_AMPUTACAO_MMSS = FormAnamnese.NR_ALI_10_AMPUTACAO_MMSS;
                objAnamnese.NR_ALI_10_PLEGIA_MMII = FormAnamnese.NR_ALI_10_PLEGIA_MMII;
                objAnamnese.NR_ALI_10_PARESIA_MMII = FormAnamnese.NR_ALI_10_PARESIA_MMII;
                objAnamnese.NR_ALI_10_PARESTIA_MMII = FormAnamnese.NR_ALI_10_PARESTIA_MMII;
                objAnamnese.NR_ALI_10_AMPUTACAO_MMII = FormAnamnese.NR_ALI_10_AMPUTACAO_MMII;
                objAnamnese.NR_AVALIACAO = FormAnamnese.NR_AVALIACAO;
                objAnamnese.DS_AVALIACAO_JUSTIFICATIVA = FormAnamnese.DS_AVALIACAO_JUSTIFICATIVA;
                objAnamnese.DS_DADOS_PA = FormAnamnese.DS_DADOS_PA;
                objAnamnese.DS_DADOS_FR = FormAnamnese.DS_DADOS_FR;
                objAnamnese.DS_DADOS_T = FormAnamnese.DS_DADOS_T;
                objAnamnese.DS_DADOS_P = FormAnamnese.DS_DADOS_P;
                objAnamnese.DS_DADOS_AP = FormAnamnese.DS_DADOS_AP;
                objAnamnese.DS_DADOS_AC = FormAnamnese.DS_DADOS_AC;

                banco.SaveChanges();
                GravarLog(FormAnamnese.CO_ANAMNESE, FormAnamnese.CO_PROFISSIONAL);
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {
                FecharConexao(banco);
            }
        }

        /// <summary>
        /// Gravar Log de Alteração
        /// </summary>
        /// <param name="intCodAnamnese">Código Anamnese</param>
        /// <param name="intCodProfissional">Código Profissional</param>
        protected void GravarLog(int intCodAnamnese, int intCodProfissional)
        {
            try
            {
                var bd = new DB_PROAD();
                var objLog = new TB_ANAMNESE_LOG();
                objLog.CO_ANAMNESE = intCodAnamnese;
                objLog.CO_PROFISSIONAL = intCodProfissional;
                objLog.DT_ALTERACAO = DateTime.Now;
                bd.AddToTB_ANAMNESE_LOG(objLog);
                bd.SaveChanges();
                bd.Connection.Close();
            }
            catch (Exception)
            {

                throw;
            }
            finally
            {

            }
        }

        
    }
}
